namespace Legend.IO
{
    using System;

    /// <summary>
    /// Represents a file system entry, could be a file or a directory.
    /// </summary>
	public interface IFileSystemEntry
    {
        /// <summary>
        /// Gets the name of the entry.
        /// </summary>
        string Name { get; }

        /// <summary>
        /// Gets the full name (path) of the entry.
        /// </summary>
        string FullName { get; }

        /// <summary>
        /// Gets a value indicating if the this entry exists in the file system.
        /// </summary>
        bool Exists { get; }

        /// <summary>
        /// Deletes the entry.
        /// </summary>
        void Delete();

        /// <summary>
        /// Gets the date and time the entry was created.
        /// </summary>
        DateTime CreationTime { get; }

        /// <summary>
        /// Gets the date and time when the entry was last modified.
        /// </summary>
        DateTime TimeOfModification { get; }
    }
}
